﻿/// <remarks>
///系统名称            :   ITALKI 支付系统
///模块名称            :   Payment
///文件代码            :   
///功能概述            :   
///创建人              :   Snail
///创建日期            :   2008.08.28
///版本号              :   1.0.0.0
///----------< 修改履历 >---------------------------------------------------------------
///修改日期          修改人              修改内容                           版本号
///------------------------------------------------------------------------------------
/// (C) 2007-2008 上海微语信息技术有限公司  版权所有。保留所有权利。
///------------------------------------------------------------------------------------
///</remarks>

using System;
using System.Configuration;

namespace IProvider.Config
{
    /// <summary>
    /// 此配置信息配置节的处理类
    /// </summary>
    public class PaymentConfig : IConfigurationSectionHandler
    {
        public Object Create(object parent, object configText, System.Xml.XmlNode section) {
            WWW_WWW_Payment_Config.WWW_WWW_Payment_ConfigDataBox wuucdb = new WWW_WWW_Payment_Config.WWW_WWW_Payment_ConfigDataBox();
            //db provider            
            if (section.Attributes["dbProvideType"] != null)
                wuucdb.DbProvideType = section.Attributes["dbProvideType"].Value;
            //db provider conntion string
            if (section.Attributes["dbConnStr"] != null)
                wuucdb.DbConnStr = ConfigurationManager.ConnectionStrings[section.Attributes["dbConnStr"].Value].ConnectionString;
            //AssemblyName
            if (section.Attributes["AssemblyName"] != null)
                wuucdb.AssemblyName = section.Attributes["AssemblyName"].Value;
            return wuucdb;
        }
    }

    /// <summary>
    /// 关于此提供者的所有配置信息
    /// </summary>
    public class WWW_WWW_Payment_Config
    {
        private static WWW_WWW_Payment_ConfigDataBox wuuc = (WWW_WWW_Payment_ConfigDataBox)ConfigurationManager.GetSection(Common.SectionName[15]);
        /// <summary>
        /// 获取处理数据类
        /// </summary>
        public static string DbProviderType {
            get {
                return wuuc.DbProvideType;
            }
        }
        /// <summary>
        /// 获取数据库连接
        /// </summary>
        public static string DbConnStr {
            get {
                return wuuc.DbConnStr;
            }
        }
        /// <summary>
        /// 获取程序集名称
        /// </summary>
        public static string AssemblyName {
            get {
                return wuuc.AssemblyName;
            }
        }

        /// <summary>
        /// 自定义配置节有多个参数，但上面的处理类同时只能返回一种数据。所以定义此类把所有返回数据封装在一起，一起输出。
        /// </summary>
        public class WWW_WWW_Payment_ConfigDataBox
        {
            private string dbProvideType = Common.DefaultDbProvideType[13];
            /// <summary>
            /// 获取或设置指定的处理数据类
            /// </summary>
            public string DbProvideType {
                get {
                    return dbProvideType;
                }
                set {
                    dbProvideType = value;
                }
            }

            private string dbConnStr = Common.DefaultConnStr;
            /// <summary>
            /// 获取或设置指定的连接数据库
            /// </summary>
            public string DbConnStr {
                get {
                    return dbConnStr;
                }
                set {
                    dbConnStr = value;
                }
            }

            private string assemblyName = Common.DefaultAssemblyName;
            /// <summary>
            /// 获取或设置指定的程序集名称
            /// </summary>
            public string AssemblyName {
                get {
                    return assemblyName;
                }
                set {
                    assemblyName = value;
                }
            }
        }
        //
    }
}
